package dataAccess;

import epam.car.rent.*;
import java.util.ArrayList;

/**
 * DAO
 * 
 * @author Alexander Tretyak
 *
 */
public interface CarRentDao {
	public abstract void createOrder(Management item);
	public abstract void createManager(Management item);
	public abstract void createCar(Management item);
	public abstract void createClient(Management item);

	public abstract int updateClient(Client c);
	public abstract int updateOrder(Order o);
	public abstract int updateCar(Car c);
	public abstract int updateManager(Manager m);
	
	public abstract int deleteClient(Client c);
	public abstract int deleteClient(String cpid);
	public abstract int deleteOrder(Order o);
	public abstract int deleteOrder(Long oid);
	public abstract int deleteCar(Car c);
	public abstract int deleteCar(Long cid);
	public abstract int deleteManager(Manager m);
	public abstract int deleteManager(String mname);

	public abstract ArrayList<Client> requestClients();
	public abstract ArrayList<Car> requestCars();
	public abstract ArrayList<Car> requestFreeCars();
	public abstract ArrayList<Manager> requestManagers();
	public abstract ArrayList<Order> requestOrders();

	public abstract void storeOrders();
	public abstract void storeManagers();
	public abstract void storeCars();
	public abstract void storeClients();
	
	public abstract Client getClientById(String id);
	public abstract Manager getManagerById(String id);
	public abstract Car getCarById(Long id);
	public abstract Order getOrderById(Long id);
	
	public abstract ArrayList<Order> getOrdersForClient(String id);
}
